package com.myblog.secondjavaproject;//包在IDEAprojects文件中

//单例模式

//第11题:设计一个类，创建的对象永远只有一份(单例模式)
public class Single {
    //测试创建了几个对象，创建一个对象，类就会使用一次这个函数
    static int count = 0;
    private static Single object = null;//创建一个对象，必须是静态的，不然下面的静态方法getList不能访问非静态属性
    private Single() {
        count++;
    }

    public static Single getList() { //非静态方法想要调用这个方法必须先创建一个对象才能调用，所以这里我们使用static变成类方法就可以调用了，返回值类型是single
        //这样还是不能只创建一个对象，因为调用一次这个函数就会new一次创建一个对象
        //控制逻辑:没有对象则创建一个对象，如果有了对象则返回原来的对象
        if ( object == null) {
            object = new Single();
            return object;
        }else {
            return object;
        }
    }

}

//总结，static静态函数，静态属性都可以被类调用，也可以被对象调用
//static静态函数只能调用静态属性，不能调用非静态属性

//问题：理解四种访问修饰符的范围
/*
public 包内包外都可以
protected 包内同一个类下可以，包外继承的可以
缺省 什么都不写
private 只能在包内
*/
